﻿using System.Collections.Generic;
using System.Windows;

using ModelingProjectLib;

namespace INSAwarsWPF
{
    /** Fenêtre de démarrage */
    public partial class MainView : Window
    {
        //private const string filenameSav = "insawars.sav";

        /** Jeu */
        private JeuImplem jeu;

        /** Fenêtre de choix pour le début du jeu */
        private MenuView mc;

        /** Construit une nouvelle fenêtre */
        public MainView()
        {
            jeu = new JeuImplem();
            InitializeComponent();

            //majView();
        }
        /*
        public void majView()
        {
            //buttonCharger.IsEnabled = SauvegardeExiste;

        }

        public bool SauvegardeExiste
        {
            get { return File.Exists(filenameSav); }
        }
        */

        /** Récupère les infos de la fenêtre de menu choix et lance la création d'une nouvelle partie */
        private void buttonNew_Click(object sender, RoutedEventArgs e)
        {
            // demande les infos de création de partie
            mc = new MenuView();
            mc.Owner = this;
            mc.ShowDialog();

            if (!mc.ResultOk) return;

            // Récupérer taille de la carte
            int tailleCarte;

            if (mc.comboBoxTaille.SelectedIndex == 0)
                tailleCarte = 25;
            else
                tailleCarte = 100;

            // ici il faut récupérer les données pour monter la fenêtre de jeu

            Dictionary<string, string> mapJ = new Dictionary<string, string>();

            string[] TabCiv = new string[2];
            TabCiv[0] = "EII";
            TabCiv[1] = "INFO";

            for (int i = 0; i < 4; i++)
            {
                if (mc.ListNoms[i] != "")
                {
                    //Trace.WriteLine(mc.ListNoms[i] + " (" + mc.TabIndexCiv[i] + ")");
                    mapJ.Add(mc.ListNoms[i], TabCiv[mc.TabIndexCiv[i]]);
                }
            }

            jeu.nouvellePartie(tailleCarte, mapJ);

            this.Hide();

            GameView gw = new GameView(jeu.PartieCourante);
            gw.ShowDialog();

            this.Show();
        }
        
        
        //private void buttonCharger_Click(object sender, RoutedEventArgs e)
        //{
            // TODO : proposer choix du fichier de sauvegarde
            /*
            TextReader sr = File.OpenText(filenameSav);
            XmlSerializer seri = new XmlSerializer(typeof(Partie));

            Partie p = seri.Deserialize(sr) as Partie;
            Trace.WriteLine(p.ToString());
            */
            /* exemple ecriture de fichier
            string s = "";
            while ((s = sr.ReadLine()) != null)
            {
                System.Console.WriteLine(s);
            }*/
        //}

        private void buttonQuit_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }
    }
}
